package com.drg.center.service;

import com.drg.center.entity.param.BaseIdsDTO;
import com.drg.center.entity.param.SetMatchDTO;
import com.drg.center.entity.result.*;
import com.guaike.core.entity.result.Result;
import org.springframework.web.bind.annotation.RequestBody;

import javax.validation.Valid;
import java.util.List;

public interface SysSettingService {

    /**
     * 搜索院内诊断
     *
     * @param search
     * @return
     */
    Result<List<BaseDictSettingVO>> searchHospitalDiagnosis(String search);

    /**
     * 搜索医保诊断
     *
     * @param search
     * @return
     */
    Result<List<BaseDictSettingVO>> searchMedicalDiagnosis(String search);

    /**
     * 搜索匹配诊断
     * @param search
     * @return
     */
    Result<List<BaseDictSettingMatchVO>> searchMatchDiagnosis(String search);

    /**
     * 匹配诊断
     * @param param
     * @return
     */
    Result<Boolean> matchDiagnosis(SetMatchDTO param);

    /**
     * 取消匹配诊断
     * @param param
     * @return
     */
    Result<Boolean> cancelMatchDiagnosis(BaseIdsDTO param);

    /**
     * 搜索院内手术
     *
     * @param search
     * @return
     */
    Result<List<BaseDictSettingVO>> searchHospitalOperation(String search);

    /**
     * 搜索医保手术
     *
     * @param search
     * @return
     */
    Result<List<BaseDictSettingVO>> searchMedicalOperation(String search);

    /**
     * 搜索匹配手术
     * @param search
     * @return
     */
    Result<List<BaseDictSettingMatchVO>> searchMatchOperation(String search);

    /**
     * 匹配手术
     * @param param
     * @return
     */
    Result<Boolean> matchOperation(SetMatchDTO param);

    /**
     * 取消匹配手术
     * @param param
     * @return
     */
    Result<Boolean> cancelMatchOperation(BaseIdsDTO param);


    /**
     * 搜索项目
     *
     * @param search
     * @param isMain
     * @param projectType
     * @return
     */
    Result<List<ProjectVO>> searchProject(String search, Boolean isMain, Integer projectType);

    /**
     * 设置重点项目
     *
     * @param param
     * @return
     */
    Result<Boolean> setMainProject(BaseIdsDTO param);
    /**
     * 取消重点项目
     *
     * @param param
     * @return
     */
    Result<Boolean> cancelMainProject(BaseIdsDTO param);
}
